require("./cw-2");
var assert = require("assert");
Test.handleError(function () {
  Object.defineProperty(this, '__backup__', {
    enumerable: false,
    writable: false,
    value: Object.freeze(['ceil', 'pow', 'random'].reduce((obj, name) => {
      obj[name] = Math[name];
      return obj;
    }, {}))
  });
  function rowSumOddNumbers(n) {
    var start = n * n - n + 1;
    var result = 0;

    console.log('>>>\r\nabc')
    // for (i = 0; i < n; i++) {
    //   result = result + (start + (i * 2));
    // }

    // return result;
  }

  ; (function () {
    var Test = global.Test, describe = global.describe, it = global.it, before = global.before, after = global.after;
    const { ceil, pow, random } = __backup__;
    for (let i = 0; i < 4; i += 1) {
      const n = ceil(random() * 500) + 1;
      Test.assertEquals(rowSumOddNumbers(n), pow(n, 3));
    };
  })();
});


// require("./cw-2");
// var assert = require("assert");
// Test.handleError(function () {
//     function rowSumOddNumbers(n) {
//         var start = n * n - n + 1;
//         var result = 0;  

//         for(i = 0; i < n; i++)
//         {
//           result =  result + (start + (i*2));
//         }

//          return result;
//       }

//     ; (function () {
//         var Test = global.Test, describe = global.describe, it = global.it, before = global.before, after = global.after;
//         Test.describe("rowSumOddNumbers", function () {
//             Test.it("Basic tests", function () {
//                 Test.assertEquals(rowSumOddNumbers(1), 1);
//                 Test.assertEquals(rowSumOddNumbers(42), 74088);
//             })
//         })

//         // Test.describe("Random tests", function () {

//         //     function randint(a, b) {
//         //         return Math.floor(Math.random() * (b - a + 1) + a);
//         //     }

//         //     //................
//         //     function nbYear3443(p0, percent, aug, p) {
//         //         var i = 1;
//         //         var mult = 1 + percent / 100.0;
//         //         var prev = p0;
//         //         while (prev < p) {
//         //             var ne = Math.floor(prev * mult + aug)
//         //             prev = ne
//         //             i++;
//         //         }
//         //         return (i - 1);
//         //     }
//         //     //................

//         //     for (var i = 0; i < 100; i++) {
//         //         var p0 = randint(10000, 15000000);
//         //         var percent = randint(50, 1000) / 100.0;
//         //         var aug = ~~(p0 / 200.0);
//         //         var k = randint(5, 100);
//         //         var p = p0 + k * aug;
//         //         Test.it("Testing nbaCup: ", function () {
//         //             Test.assertEquals(nbYear(p0, percent, aug, p), nbYear3443(p0, percent, aug, p));
//         //         }
//         //         )
//         //     }
//         // });
//     })();
// });